Some computing systems include persistent memory, which may be byte-addressable, cacheable, high-performance, non-volatile memory. Persistent memory may provide performance comparable to traditional volatile random access memory (RAM) while also providing data persistence. However, persistent memory may present additional challenges to application developers. In particular, application developers may have to guarantee that at any given time, data in persistent memory is consistent. Otherwise, unexpected failures such as hardware failures or power failures may result in data corruption.